#pragma once

// https://stackoverflow.com/questions/62503703/cannot-read-sectors-from-disk-in-c
//https://en.wikipedia.org/wiki/INT_13H
#include "lib.h"

/**
 * @brief 从磁盘中读取若干个sector到内存中
 * @param sector_size 要读取多少个sector
 * @param track 磁盘的track,从0开始计数
 * @param start_sector 从磁盘的第几个sector开始读，从1开始计数
 * @param head 磁盘头，从0开始计数
 * @param drive 驱动号，从0x80开始计数
 * @param buffer 要保存到的内存地址(低8bit的地址)
 * @param status 读取磁盘之后的状态
 * @param sectors_read 实际上读了多少个sector
 * 
*/
void read_disk(uint8_t sector_size, uint8_t track, uint8_t start_sector, 
            uint8_t head, uint8_t drive,
          uint8_t *buffer, uint8_t *status, uint8_t *sectors_read);